{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "from ggplot import *\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### `scale_fill_yhat`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<ggplot: (284480929)>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAArgAAAIACAYAAABpWR83AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X903nV9//9HkusypEnTpFBqKazO2hWYQkvl+AO1xPJD\n8Ec5DOsPfsk8jA1x6/ls6nY23fGczfnhTNiYm6LneNSinCF2AgoDD0IFQWQFxV/QYqkggVmkTUgJ\n+dHm+weSr/mAts2V5Epfud3+0VzXO6/3M01el/e+fTdXw8jIyEgAAKAQjfUeAAAAJpLABQCgKAIX\nAICiCFwAAIoicAEAKIrABQCgKJU9HXDNNddk06ZNaW1tzYUXXjjmuTvuuCM33XRTPvjBD2bWrFmT\nNiQAAOytPV7BXbZsWc4666znPd7T05Of/exn6ejomJTBAABgPPYYuIsWLUpLS8vzHr/xxhtz0kkn\nTcpQAAAwXuO6B/f+++9Pe3t75s+fP9HzAABATfZ4D+7/a2hoKLfddlvOOeec33pMb29v+vr6xjzW\n1taW9vb2fZ8QAAD2wT4H7pNPPpkdO3bkU5/6VJJnY/byyy/P+eefn7a2tiTJxo0bs2HDhjGft3Ll\nynR1dU3AyABQvjP+495sf3q43mPMGDf/1bH1HoEJtFeBOzIyMvrf58+fnw984AOjH//Lv/xLLrjg\ngjH36a5YsSJLly4ds8bg4GC2bdtW67zshUqlks7Ozmzfvj3Dw14cS9Dc3JyBgYF6j0GN7M3yTObe\nFLcwfnsM3Kuvvjpbt25Nf39/LrnkknR1dWX58uVjjvnNAE6S9vb2592O0N3dnaGhoQkYmb01PDzs\nz7wQlUrF97Ig9mY57E2YnvYYuGecccbvfH7t2rUTNgwAANTKO5kBAFAUgQsAQFEELgAARRG4AAAU\nReACAFAUgQsAQFEELgAARRG4AAAUReACAFAUgQsAQFEELgAARRG4AAAUReACAFAUgQsAQFEELgAA\nRRG4AAAUReACAFAUgQsAQFEELgAARRG4AAAUReACAFAUgQsAQFEELgAARRG4AAAUReACAFAUgQsA\nQFEELgAARRG4AAAUpTJVJ2pubk5jo56eCg0NDXn66adTrVZTqUzZt5hJ1NjYmJaWlnqPQY3szfLY\nmzA9Tdkr7MDAwFSdasarVqvp6OjIzp07MzQ0VO9xmAAtLS3p7++v9xjUyN4sj70J05NLqgAAFEXg\nAgBQFIELAEBRBC4AAEURuAAAFEXgAgBQFIELAEBRBC4AAEURuAAAFEXgAgBQFIELAEBRBC4AAEUR\nuAAAFEXgAgBQFIELAEBRBC4AAEURuAAAFEXgAgBQFIELAEBRBC4AAEURuAAAFEXgAgBQFIELAEBR\nBC4AAEURuAAAFKWypwOuueaabNq0Ka2trbnwwguTJDfddFM2bdqUpqamzJ07N6tXr84BBxww6cMC\nAMCe7PEK7rJly3LWWWeNeWzx4sW58MIL82d/9meZO3dubr/99kkbEAAA9sUeA3fRokVpaWkZ89ji\nxYvT2Pjspx566KHp7e2dnOkAAGAf1XwP7r333puXvexlEzELAADUbI/34P4u3/72t9PU1JSjjjpq\nzOO9vb3p6+sb89jg4GBaW1trOR17qVKpjPlP9n9NTU2pVqv1HoMa2ZvlsTdhehr3q+y9996bzZs3\n59xzz33ecxs3bsyGDRvGPLZy5cp0dXWN93SMQ2dnZ71HAF6Avcne2VrvAWC/tVeBOzIyMubjzZs3\n54477sh55533glciVqxYkaVLl455bHBwMNu2bathVPZWpVJJZ2dntm/fnuHh4XqPwwRobm7OwMBA\nvcegRvZmeexNmJ72GLhXX311tm7dmv7+/lxyySXp6urKbbfdll27duWLX/xikmf/odlb3vKW0c9p\nb29Pe3v7mHW6u7szNDQ0wePzuwwPD/szL0SlUvG9LIi9WQ57E6anPQbuGWec8bzHli9fPinDAABA\nrbyTGQAARRG4AAAUReACAFAUgQsAQFEELgAARRG4AAAUReACAFAUgQsAQFEELgAARRG4AAAUReAC\nAFAUgQsAQFEELgAARRG4AAAUReACAFAUgQsAQFEELgAARRG4AAAUReACAFAUgQsAQFEELgAARRG4\nAAAUReACAFAUgQsAQFEELgAARRG4AAAUReACAFAUgQsAQFEqU3Wi5ubmNDbq6anQ0NCQp59+OtVq\nNZXKlH2LmUSNjY1paWmp9xjUyN4sj70J09OUvcIODAxM1almvGq1mo6OjuzcuTNDQ0P1HocJ0NLS\nkv7+/nqPQY3szfLYmzA9uaQKAEBRBC4AAEURuAAAFEXgAgBQFIELAEBRBC4AAEURuAAAFEXgAgBQ\nFIELAEBRBC4AAEURuAAAFEXgAgBQFIELAEBRBC4AAEURuAAAFEXgAgBQFIELAEBRBC4AAEURuAAA\n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\n1lx//fX77Rs8PMcVXAAAkiRNTU058MADMzIyUu9RaiJwAQAoisAFAKAoAhcAgOfZn29T8I/MAACm\nqb35h2ET7c1vfnN+8IMfZNOmTbngggtyzjnnTPkMtRK4AACM+sY3vlHvEWrmFgUAAIoicAEAKIrA\nBQCgKAIXAICiCFwAAIoicAEAKIrABQCgKAIXAICiCFwAAIpS0zuZPfPMM7n22mvzy1/+Mg0NDVm9\nenUOPfTQiZoNAAD2WU2Be8MNN2TJkiVZs2ZNdu3alaGhoYmaCwAAxmXctyg888wzefjhh7N8+fIk\nSVNTUw444IAJGwwAAMZj3Fdwd+zYkVmzZuVrX/taHn/88RxyyCE55ZRTUq1WJ3I+AADYJ+MO3N27\nd+exxx7LqaeemoULF+aGG27I7bffnq6urvT29qavr2/M8YODg2ltba15YPasUqnpzhNqMFl/wWtq\navKXxwI8tzft0XLYmzA9jftVtr29Pe3t7Vm4cGGS5Mgjj8x3vvOdJMnGjRuzYcOGMcevXLkyXV1d\nNYwK09+8efPqPQL7gc7OznqPwH5ha70HgP3WuAO3ra0tc+bMyRNPPJGDDjooDz300Oj/uK9YsSJL\nly4dc/zg4GC2bdtW27TsFVeH6meyfsabm5szMDAwKWszdSqVSjo7O7N9+/YMDw/XexwmgL0J01NN\nJXTKKadk/fr12bVrVzo7O3Paaacl+f+v7v6m7u5uv2WB4k3Wz3ilUrF/CjI8POz7WQh7E6anmgL3\nxS9+cf7kT/5komYBAICaeSczAACKInABACiKwAUAoCgCFwCAoghcAACKInABACiKwAUAoCgCFwCA\noghcAACKInABACiKwAUAoCgCFwCAoghcAACKInABACiKwAUAoCgCFwCAoghcAACKInABACiKwAUA\noCgCFwCAoghcAACKInABACiKwAUAoCgCFwCAoghcAACKInABACiKwAUAoCgCFwCAolSm6kTNzc1p\nbNTTU6GhoaHeI8xYLS0tk7JuY2PjpK3N1GloaMjTTz+darWaSmXKXn6ZRPYmTE9T9go7MDAwVaea\n8arVar1HmLH6+/snZd2WlpZJW5upU61W09HRkZ07d2ZoaKje4zAB7E2YnlxSBQCgKAIXAICiCFwA\nAIoicAEAKIrABQCgKAIXAICiCFwAAIoicAEAKIrABQCgKAIXAICiCFwAAIoicAEAKIrABQCgKAIX\nAICiCFwAAIoicAEAKIrABQCgKAIXAICiCFwAAIoicAEAKIrABQCgKAIXAICiCFwAAIoicAEAKIrA\nBQCgKDUH7u7du/PpT386X/7ylydiHgAAqEnNgXvXXXdl3rx5EzELAADUrKbA7enpyebNm3PMMcdM\n1DwAAFCTmgL3xhtvzIknnpiGhoaJmgcAAGpSGe8nbtq0Ka2trVmwYEEeeuihMc/19vamr69vzGOD\ng4NpbW0d7+nYB5XKuL+t1KharU7Kuk1NTZO2NlPnub1pj5bD3oTpadyvsg8//HAeeOCBbN68OcPD\nwxkYGMj69etz+umnZ+PGjdmwYcOY41euXJmurq6aB4bpzP3o7MlFt1yUnsGeeo8xo8x50Zx8suuT\n9R5jHLbWewDYb407cE844YSccMIJSZKtW7fmjjvuyOmnn54kWbFiRZYuXTrm+MHBwWzbtq2GUdlb\nrg7Vz2T9jDc3N2dgYGBS1mbqVCoVcVsHPYM99ibMMJNSQu3t7Wlvbx/zWHd3d4aGhibjdDBtTNbP\neKVSsX+gBvYmzCwTErgveclL8pKXvGQilgIAgJp4JzMAAIoicAEAKIrABQCgKAIXAICiCFwAAIoi\ncAEAKIrABQCgKAIXAICiCFwAAIoicAEAKIrABQCgKAIXAICiCFwAAIoicAEAKIrABQCgKAIXAICi\nCFwAAIoicAEAKIrABQCgKAIXAICiCFwAAIoicAEAKIrABQCgKAIXAICiCFwAAIoicAEAKIrABQCg\nKAIXAICiVKbqRM3NzWls1NNToaGhod4jzFgtLS2Tsm5jY+Okrf3eLz+Unv5dk7I2z3fIK+o9wcy0\nP+5NYPymLHAHBgam6lQzXrVarfcIM1Z/f/+krNvS0jJpa4tbZoL9cW8C4+eSKgAARRG4AAAUReAC\nAFAUgQsAQFEELgAARRG4AAAUReACAFAUgQsAQFEELgAARRG4AAAUReACAFAUgQsAQFEELgAARRG4\nAAAUReACAFAUgQsAQFEELgAARRG4AAAUReACAFAUgQsAQFEELgAARRG4AAAUReACAFAUgQsAQFEE\nLgAARamM9xN7enryX//1X9m5c2caGhpyzDHH5NWvfvVEzgYAAPts3IHb2NiYk08+OQsWLMjAwEA+\n85nPZPHixZk3b95EzgcAAPtk3LcozJ49OwsWLEiSNDc356CDDspTTz01YYMBAMB4TMg9uNu3b8/j\njz+ehQsXTsRyAAAwbuO+ReE5AwMDueqqq3LKKaekubk5SdLb25u+vr4xxw0ODqa1tbXW07EXKpWa\nv62MU7VanZR1m5qaJm1tmAnsTZhZaiqhXbt25aqrrsrRRx+dww8/fPTxjRs3ZsOGDWOOXblyZbq6\numo5HUx7++c96FvrPQBMOnsTZpaaAveaa67JvHnznvfbE1asWJGlS5eOeWxwcDDbtm2r5XTsJVdw\n62eyfsabm5szMDAwKWvDTGBvwswy7hJ6+OGH88Mf/jAHH3xwPv3pTydJVq1alSVLlqS9vT3t7e1j\nju/u7s7Q0FBt08I0N1k/45VKxf6BGtibMLOMO3B/7/d+L3//938/kbMAAEDNvJMZAABFEbgAABRF\n4AIAUBSBCwBAUQQuAABFEbgAABRF4AIAUBSBCwBAUQQuAABFEbgAABRF4AIAUBSBCwBAUQQuAABF\nEbgAABRF4AIAUBSBCwBAUQQuAABFEbgAABRF4AIAUBSBCwBAUQQuAABFEbgAABRF4AIAUBSBCwBA\nUQQuAABFEbgAABRF4AIAUBSBCwBAUSpTdaKL1j+enmd2TdXpZrxDXlHvCWamlpaWSVm3sbFx0taG\nmcDehJllygJX3DIT9Pf3T8q6LS0tk7Y2zAT2JswsblEAAKAoAhcAgKIIXAAAiiJwAQAoisAFAKAo\nAhcAgKIIXAAAiiJwAQAoisAFAKAoAhcAgKIIXAAAiiJwAQAoisAFAKAoAhcAgKIIXAAAiiJwAQAo\nisAFAKAoAhcAgKIIXAAAiiJwAQAoisAFAKAoAhcAgKIIXAAAiiJwAQAoisAFAKAolVo+efPmzfnv\n//7vjIyM5JhjjsnrXve6iZoLAADGZdxXcHfv3p3rr78+Z599dt73vvflhz/8YbZt2zaRswEAwD4b\nd+A++uijOfDAA9PR0ZGmpqa8/OUvzwMPPDCRswEAwD4bd+A+9dRTaW9vH/24vb09vb29EzIUAACM\nV0334P42vb296evrm4ylYVqrVquTsm5TU9OkrQ0zgb0JM8u4A3f27Nnp6ekZ/bi3t3f0iu7GjRuz\nYcOGMcf/3cqV6erqGu/p2Ae9vb3ZuPGPs2LFijFX2eGF3PxX8+o9woxhb7Iv7M2p09vbm1tuucXe\nLMi4A3fhwoV58skns2PHjrS1teVHP/pRzjjjjCTJihUrsnTp0jHHt7W11TYpe62vry8bNmzI0qVL\nbVSYRuxNmJ7szfKMO3AbGxtz6qmnZt26dRkZGcny5cszb96zf9tsb2/3AwIAQF3UdA/ukiVLsmTJ\nkomaBQAAauadzAAAKIrALVBbW1tWrlzpvmeYZuxNmJ7szfI0jIyMjNR7CCbe7t2785nPfCbt7e15\n97vfXe9xgCTPPPNMrr322vzyl79MQ0NDVq9enUMPPbTeY8GMd+edd+aee+5JQ0ND5s+fn9WrV6dS\nmZTfpMoU8d0r1F133ZV58+ZlYGCg3qMAv3bDDTdkyZIlWbNmTXbt2pWhoaF6jwQzXm9vb+66665c\ndNFFqVQq+cpXvpIf/ehHWbZsWb1HowZuUShQT09PNm/enGOOOabeowC/9swzz+Thhx/O8uXLkzz7\nBgEHHHBAnacCkmRkZCRDQ0Ojf/GcPXt2vUeiRq7gFujGG2/MiSee6OotTCM7duzIrFmz8rWvfS2P\nP/54DjnkkJxyyineBQvqrL29Pa95zWty6aWXplqtZvHixVm8eHG9x6JGruAWZtOmTWltbc2CBQvi\n9mqYPnbv3p3HHnssxx57bP70T/801Wo1t99+e73Hghmvv78/DzzwQNauXZu//Mu/zODgYO677756\nj0WNXMEtzMMPP5wHHnggmzdvzvDwcAYGBrJ+/fqcfvrp9R4NZrTn3gBn4cKFSZIjjzwy3/nOd+o8\nFbBly5Z0dnZm1qxZSZIjjjgijzzySI466qg6T0YtBG5hTjjhhJxwwglJkq1bt+aOO+4QtzANtLW1\nZc6cOXniiSdy0EEH5aGHHhp990egfubMmZNf/OIXGRoaSqVSyZYtW0b/Isr+S+ACTJFTTjkl69ev\nz65du9LZ2ZnTTjut3iPBjHfooYfmyCOPzOWXX57GxsYsWLAgK1asqPdY1MjvwQUAoCj+kRkAAEUR\nuAAAFEXgAgBQFIELAEBRBC4AAEURuAAAFEXgAgBQFIELAEBRBC4AAEURuAAAFEXgAgBQFIELAEBR\nBC4AAEURuAAAFEXgAgBQFIELAEBRBC4AAEURuAAAFEXgAvzapk2bsnz58syZMyef/OQn6zrLjTfe\nmNNPP72mNb7whS/k9a9/fZJkcHAwRxxxRH71q19NxHgA05rABfi1iy++OG984xvT09OTiy66aFxr\nnHfeefnIRz5S8yx/93d/l7/5m7+peZ2GhoYkyYte9KK8973vzT/90z/VvCbAdCdwAX7t5z//ef7w\nD/+wrjPs3r07//M//5Pe3t4ce+yxE7r2u971rnzhC1/I0NDQhK4LMN0IXIAkq1atyi233JL3ve99\naW9vz2WvSja/AAAE+klEQVSXXZZjjjkmc+bMyaJFi/LRj350zPG33357jjvuuHR2dmbRokX54he/\nmM9+9rP50pe+lIsvvjjt7e1ZvXp1kuSnP/1purq60tnZmVe84hW57rrrRtc577zzcuGFF+bNb35z\nZs+enVtvvTU33HBDVq5cOeZ8P/7xj3PSSSflwAMPzIIFC/Lxj388//u//5vW1tZs37599Lh77rkn\nBx98cHbt2vW8r3HhwoWZO3duvvvd707kHx3AtCNwAZLcfPPNef3rX5//+I//SG9vb5YtW5Z169al\np6cn3/jGN/LpT3861157bZJnr/Seeuqp+Yu/+Is88cQT+f73v59ly5bl/PPPz5lnnpkPfvCD6e3t\nzTXXXJPh4eG87W1vy5ve9KZs27Ytl112Wc4888xs3rx59NxXXnllPvzhD+epp57Kcccdlx/+8IdZ\nunTp6PN9fX058cQTc+qpp+axxx7Lgw8+mFWrVmX+/Pnp6urKVVddNXrsFVdckXe/+91pamp6wa/z\n8MMPzw9+8INJ+lMEmB4ELsBvGBkZSZK84Q1vGL1d4eUvf3ne+c53ZsOGDUmeDdITTzwxa9asSVNT\nUzo7O3PUUUe94Hrf/e53s3PnznzoQx9KpVJJV1dX3vKWt+TKK68cPWb16tV59atfnSRpbm7Ojh07\nMnv27NHnv/71r2fBggVZu3ZtXvSiF6W1tXX09oVzzjkn69atS/Ls7Q1XXnllzj777N/69c2ePTs7\nduwY7x8PwH5B4AK8gLvuuitvfOMbc/DBB6ejoyOXX355nnjiiSTJI488ksWLF+/VOt3d3TnssMPG\nPLZo0aI8+uijox//v893dnbmqaeeGv34d51v9erV+elPf5qf//znuemmm9LR0ZEVK1b81nmeeuqp\ndHR07NXsAPsrgQvwAs4888ycdtppefTRR7Njx45ccMEFo1d3DzvssDz44IMv+HnP/daC5xxyyCF5\n5JFHxjz28MMPZ+HChb/1c4466qhs2rRp9OPDDjssP/vZz17wfM3NzVmzZk3WrVuXK6644ndevU2e\nvR/46KOP/p3HAOzvBC7AC+jr60tnZ2eq1Wq+973v5ctf/vLoc2eeeWZuvvnmXH311dm1a1eefPLJ\n0fta58+fny1btowe+6pXvSqzZs3KxRdfnOHh4dx66635+te/nne9612/9dynnnpqbr311tGP3/KW\nt+Txxx/PZZddlsHBwfT19eV73/ve6PNnn312Pv/5z+e66677nYHb3d2d7du3j94OAVAqgQvwa795\nJfXf//3f8+EPfzhz5szJP/zDP+Qd73jH6HOHHXZYrr/++vzzP/9z5s6dm+XLl+e+++5Lkrz3ve/N\nj3/848ydOzenn356qtVqrrvuulx//fU56KCDctFFF2XdunVZsmTJ8875nOXLl6ejoyN33313kqSt\nrS3f/OY3c+211+bFL35x/uAP/mBMAL/2ta9NY2NjjjnmmOfd7vCbvvSlL+Xcc89NtVqt6c8JYLpr\nGHnu/3MDYNr45je/mU996lNZv379Xh2/atWqnHnmmfnjP/7jF3x+cHAwy5Yty7e//e0cdNBBEzkq\nwLQjcAH2c3fffXdOPvnkPPLII2ltba33OAB15xYFgP3Ye97znpx00kn513/9V3EL8Guu4AIAUBRX\ncAEAKIrABQCgKAIXAICiCFwAAIoicAEAKIrABQCgKP8fdBNj7QXkF/4AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1059f5690>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ggplot(mtcars, aes(x='factor(cyl)', fill='factor(vs)')) + geom_bar() + scale_fill_yhat()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<ggplot: (285321285)>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsIAAAIACAYAAACIMgpmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X103nV9//FXkuuiTW/SBii1LYhQuwoqtGRsMnGlLQhl\nzgIHypQholM3ZEd29MjZvNnx6FHkeDcO23ROD1AELRwQb2DAkBYQRVaRe9tCKVRuZsG2adqYJm1+\nf1TyMwMsJLlyJf08Hv+0uXJd3+87+Z5Pr2e/+V65Gnp7e3sDAACFaaz3AAAAUA9CGACAIglhAACK\nJIQBACiSEAYAoEhCGACAIlV2d4frrrsuq1evzvjx43POOeckSW666aasXr06TU1N2XvvvbN48eKM\nHTu25sMCAMBQadjd7xF+/PHHs9dee+Xaa6/tC+FHH300Bx10UBobG3PzzTenoaEhxx577LAMDAAA\nQ2G3l0YceOCBaW5u7nfbzJkz09i466H7779/2tvbazMdAADUyKCvEb7nnnvy2te+dihmAQCAYbPb\na4T/kNtuuy1NTU057LDD+t3e3t6ejo6OfrdNmDAhLS0tg9kdAAAMmQGH8D333JM1a9bkrLPOesHn\nVq5cmRUrVvS7bd68eZk/f/5AdwcAo9ap/3ZPNm7rqfcYQ6p1XCVXnzO33mPAoLysEP6/r6dbs2ZN\n7rzzzpx99tmpVF64iba2tsyePbvfbdu3b8+GDRsGMWqZKpVKWltbs3HjxvT07Fn/iI5GY8aMSVdX\nV73HKJ51MbJYF7u3p0Vwsutr2pOe16dMmVLvEaiD3Ybw1VdfnXXr1qWzszNf+tKXMn/+/Nx+++3Z\nsWNHLrvssiS7XjD3tre9re8xLS0tL7gM4qmnnkp3d/cQj1+Onp4e378RoFKpOA4jiHUxMlgX5XLc\nGe12G8KnnnrqC26bO9ePQgAAGN28sxwAAEUSwgAAFEkIAwBQJCEMAECRhDAAAEUSwgAAFEkIAwBQ\nJCEMAECRhDAAAEUSwgAAFEkIAwBQJCEMAECRhDAAAEUSwgAAFEkIAwBQJCEMAECRhDAAAEUSwgAA\nFEkIAwBQJCEMAECRhDAAAEUSwgAAFEkIAwBQJCEMAECRhDAAAEUSwgAAFEkIAwBQJCEMAECRhDAA\nAEUSwgAAFEkIAwBQJCEMAECRhDAAAEWqDNeOxowZk8ZG3f1KNTQ0ZNu2balWq6lUhu1w8RIaGxvT\n3Nxc7zGKZ12MLNZFuRx3Rrthewbp6uoarl3tUarVaiZPnpytW7emu7u73uMUr7m5OZ2dnfUeo3jW\nxchiXZRrTzrura2t9R6BOnCKFgCAIglhAACKJIQBACiSEAYAoEhCGACAIglhAACKJIQBACiSEAYA\noEhCGACAIglhAACKJIQBACiSEAYAoEhCGACAIglhAACKJIQBACiSEAYAoEhCGACAIglhAACKJIQB\nACiSEAYAoEhCGACAIglhAACKJIQBACiSEAYAoEhCGACAIglhAACKJIQBACiSEAYAoEhCGACAIglh\nAACKJIQBAChSZXd3uO6667J69eqMHz8+55xzTpKks7MzV111VTZv3pzJkyfntNNOy9ixY2s+LAAA\nDJXdnhGeM2dO/vqv/7rfbXfccUcOPvjg/P3f/30OOuig3H777TUbEAAAamG3IXzggQemubm5322/\n/OUvM2fOnCTJ4Ycfnl/+8pe1mQ4AAGpkQNcIb926NRMmTEiSTJw4MVu3bh3SoQAAoNZ2e43wy9HQ\n0NDv4/b29nR0dPS7bfv27Rk/fvxQ7K4olUql35/UV1NTU6rVar3HKJ51MbJYF+Vy3BntBvQsMmHC\nhHR0dGTChAnZsmXLCwJ35cqVWbFiRb/b5s2bl/nz5w980sK1trbWewQYcawLRo919R6gJqZMmVLv\nEWBQXlYI9/b29vt49uzZ+cUvfpGjjz469957b2bPnt3v821tbS+4bfv27dmwYcMgxy1PpVJJa2tr\nNm7cmJ6ennqPU7wxY8akq6ur3mMUz7oYWayLcu1Jz+uivky7DeGrr74669atS2dnZ770pS9l/vz5\nOfroo7Ns2bLcc889mTRpUk477bR+j2lpaUlLS0u/25566ql0d3cP7fQF6enp8f0bASqViuMwglgX\nI4N1US7HndFutyF86qmnvujtZ5111pAPAwAAw8U7ywEAUCQhDABAkYQwAABFEsIAABRJCAMAUCQh\nDABAkYQwAABFEsIAABRJCAMAUCQhDABAkYQwAABFEsIAABRJCAMAUCQhDABAkYQwAABFEsIAABRJ\nCAMAUCQhDABAkYQwAABFEsIAABRJCAMAUCQhDABAkYQwAABFEsIAABRJCAMAUCQhDABAkYQwAABF\nEsIAABRJCAMAUCQhDABAkYQwAABFEsIAABRJCAMAUKTKcO1ozJgxaWzU3a9UQ0NDtm3blmq1mkpl\n2A4XL6GxsTHNzc31HqN41sXIYl2Uy3FntBu2Z5Curq7h2tUepVqtZvLkydm6dWu6u7vrPU7xmpub\n09nZWe8ximddjCzWRbn2pOPe2tpa7xGoA6doAQAokhAGAKBIQhgAgCIJYQAAiiSEAQAokhAGAKBI\nQhgAgCIJYQAAiiSEAQAokhAGAKBIQhgAgCIJYQAAiiSEAQAokhAGAKBIQhgAgCIJYQAAiiSEAQAo\nkhAGAKBIQhgAgCIJYQAAiiSEAQAokhAGAKBIQhgAgCIJYQAAiiSEAQAokhAGAKBIQhgAgCIJYQAA\niiSEAQAokhAGAKBIlcE8+Cc/+Ul+/vOfp6GhIVOnTs3ixYtTqQxqkwAAMCwGfEa4vb09d911Vz7w\ngQ/knHPOyc6dO/PAAw8M5WwAAFAzgzp929vbm+7u7jQ0NKS7uzsTJ04cqrkAAKCmBhzCLS0tOeqo\no/LlL3851Wo1M2fOzMyZM4dyNgAAqJkBh3BnZ2dWrVqV8847L2PHjs2yZcty33335bDDDkt7e3s6\nOjr63X/79u0ZP378oAcuzfPXXLv2emRoampKtVqt9xjFsy5GFuuiXI47o92An0XWrl2b1tbWjBs3\nLklyyCGHZP369TnssMOycuXKrFixot/9nzrqqXSmc3DTjjCT9pqUi+dfPCz7am1tHZb9wGhiXTB6\nrKv3ADUxZcqUeo8AgzLgEJ40aVJ+9atfpbu7O5VKJWvXrs2MGTOSJG1tbZk9e3a/+59///mDm3QE\n2rx9czZs2FDTfVQqlbS2tmbjxo3p6emp6b7YvTFjxqSrq6veYxTPuhhZrIty1fo5cDiJ+jINOIT3\n33//HHroofna176WxsbGTJs2LW1tbUl2XT/c0tLS/wH3D2rOEau7u3tY9tPT0zNs++KlVSoVx2EE\nsS5GBuuiXI47o92gLrA75phjcswxxwzRKAAAMHy8sxwAAEUSwgAAFEkIAwBQJCEMAECRhDAAAEUS\nwgAAFEkIAwBQJCEMAECRhDAAAEUSwgAAFEkIAwBQJCEMAECRhDAAAEUSwgAAFEkIAwBQJCEMAECR\nhDAAAEUSwgAAFEkIAwBQJCEMAECRhDAAAEUSwgAAFEkIAwBQJCEMAECRhDAAAEUSwgAAFEkIAwBQ\nJCEMAECRhDAAAEUSwgAAFEkIAwBQJCEMAECRhDAAAEWq1HuA0a65ubmm229oaMi2bdtSrVZTqThc\n9dbY2FjzY87uWRcji3VRLsed0c4zyCB1dnbWdPvVajWTJ0/O1q1b093dXdN9sXvNzc01P+bsnnUx\nslgX5dqTjntra2u9R6AOXBoBAECRhDAAAEUSwgAAFEkIAwBQJCEMAECRhDAAAEUSwgAAFEkIAwBQ\nJCEMAECRhDAAAEUSwgAAJElOOumkLFy4MM8999xu77tixYo88sgjr2j773vf+9Le3j7Q8V7Utm3b\n8u53v3tAjxXCAADk6aefTpLccsst2WeffXZ7/+XLl2fVqlUva9u9vb15/PHHU6lU0tLSMqg5/69x\n48Zln332yerVq1/xYytDOgkAAKPSeeedl5/85CdZuHBhkqSnpydTp07Nd77znTQ0NOSzn/1sfvCD\nH2Ts2LG56KKLcskll+Saa67JVVddlW9+85s566yzsn79+kycODGXX355Nm3alHe9612ZPn165syZ\nk3HjxvVte/PmzVmyZEmampoyderUHHTQQfnkJz+ZSy+9NN/4xjeyc+fOfOYzn8kxxxyTL3zhC/nh\nD3+YLVu25POf/3wWLlyYs88+O+PHj8+aNWtyxRVX5Nhjj813v/vdfPSjH31FX7MzwgAA5MILL8y8\nefNy00035eabb86KFSsyffr0/OhHP8p9992Xu+++O3feeWd+9KMf5fWvf33OPvvsfO5zn8sll1yS\na6+9NgcccECWL1+e008/PRdddFGS5Kmnnsrll1+e888/P7/85S9z8MEHJ0n+8z//M6eddlquv/76\nTJ8+PUnym9/8Jt/+9rdz22235aabbsqnPvWpJMm5556bW2+9NTfccEM+/elP983b1taWG2+8Mfvs\ns08OPvjgPPzww6/4a3ZGGACAPhs2bMjf/d3fZePGjXn66afT1taW5557Lm95y1v67tPQ0JDe3t6+\njx955JEceeSRSZIjjzwyN998c5Lk8MMPT1NT0wv28cgjj+T9739/kl1B+8ADD+TRRx/Ngw8+mAUL\nFqS3t7fvOuVLL700V1xxRRobG/PMM8/0beP5/Q2GM8IAACTZdS3vlVdemb/8y7/M8uXLc/zxx6e3\ntzeHHHJIbr/99n73q1ar6enpSZK89rWvzV133ZUkufvuuzNr1qwku4L5ebNnz87atWv77v/zn/88\nSXLPPfckSQ4++OAcfvjh+dGPfpRbb7217/aLL744y5cvz3e+851+8d3Y+P8zdu3atTnkkENe8dcr\n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\nYQAAiiSEAQAokhAGAKBIQhgAgCIJYQAAiiSEAX5n9erVmTt3biZNmpSLL764rrPceOONOeWUUwa1\njUsvvTQowd2gAAAFoklEQVRvectbkiTbt2/PIYcckueee24oxgPYIwhhgN+58MILs2DBgmzevDnn\nnnvugLZx9tln55Of/OSgZ/n4xz+ef/zHfxz0dhoaGpIke+21V9773vfmc5/73KC3CbCnEMIAv/P4\n44/n9a9/fV1n2LlzZ/7nf/4n7e3tOfLII4d02+94xzty6aWXpru7e0i3CzBaCWGAJAsXLsytt96a\nD37wg2lpaclFF12UI444IpMmTcqBBx6YT33qU/3uf8cdd+TNb35zWltbc+CBB+ayyy7L17/+9Xzr\nW9/KhRdemJaWlixevDhJ8vDDD2f+/PlpbW3NG9/4xnz/+9/v287ZZ5+dc845J3/xF3+RiRMnZvny\n5bnhhhsyb968fvt78MEH89a3vjX77LNPpk2blgsuuCD/+7//m/Hjx2fjxo199/v5z3+e/fbbLzt2\n7HjB1zhjxozsvffe+elPfzqU3zqAUUsIAyS55ZZb8pa3vCX/9m//lvb29syZMydLly7N5s2b88Mf\n/jBf/epX873vfS/JrjPHJ554Yj70oQ/l2WefzS9+8YvMmTMn73vf+3LGGWfkox/9aNrb23Pdddel\np6cnb3/723PCCSdkw4YNueiii3LGGWdkzZo1ffu+8sor84lPfCJbtmzJm9/85tx///2ZPXt23+c7\nOjpy3HHH5cQTT8zTTz+dRx55JAsXLszUqVMzf/78LFu2rO++l19+ed75znemqanpRb/O173udbn3\n3ntr9F0EGF2EMMDv6e3tTZL8+Z//ed9lEm94wxvyV3/1V1mxYkWSXeF63HHHZcmSJWlqakpra2sO\nO+ywF93eT3/602zdujXnn39+KpVK5s+fn7e97W258sor++6zePHivOlNb0qSjBkzJps2bcrEiRP7\nPv+DH/wg06ZNy3nnnZe99tor48eP77ts4l3veleWLl2aZNdlFVdeeWXOPPPMl/z6Jk6cmE2bNg30\n2wOwRxHCAC/irrvuyoIFC7Lffvtl8uTJ+drXvpZnn302SbJ+/frMnDnzZW3nqaeeygEHHNDvtgMP\nPDBPPvlk38f/9/Otra3ZsmVL38d/aH+LFy/Oww8/nMcffzw33XRTJk+enLa2tpecZ8uWLZk8efLL\nmh1gTyeEAV7EGWeckZNOOilPPvlkNm3alA984AN9Z4sPOOCAPPLIIy/6uOd/S8Pzpk+fnvXr1/e7\n7YknnsiMGTNe8jGHHXZYVq9e3ffxAQcckEcfffRF9zdmzJgsWbIkS5cuzeWXX/4HzwYnu65XPvzw\nw//gfQBKIYQBXkRHR0daW1tTrVbzs5/9LFdccUXf584444zccsstufrqq7Njx4785je/6bvudurU\nqVm7dm3fff/0T/8048aNy4UXXpienp4sX748P/jBD/KOd7zjJfd94oknZvny5X0fv+1tb8szzzyT\niy66KNu3b09HR0d+9rOf9X3+zDPPzCWXXJLvf//7fzCEn3rqqWzcuLHvMgyA0glhgN/5/TOz//qv\n/5pPfOITmTRpUj7zmc/k9NNP7/vcAQcckOuvvz5f+MIXsvfee2fu3Lm57777kiTvfe978+CDD2bv\nvffOKaeckmq1mu9///u5/vrrs+++++bcc8/N0qVLM2vWrBfs83lz587N5MmTc/fddydJJkyYkJtv\nvjnf+9738qpXvSp/9Ed/1C+U/+zP/iyNjY054ogjXnCZxe/71re+lbPOOivVanVQ3yeAPUVD7/M/\n6wNgxLj55pvz7//+77nmmmte1v0XLlyYM844I+95z3te9PPbt2/PnDlzctttt2XfffcdylEBRi0h\nDDDK3X333Tn++OOzfv36jB8/vt7jAIwaLo0AGMXe/e53561vfWv+5V/+RQQDvELOCAMAUCRnhAEA\nKJIQBgCgSEIYAIAiCWEAAIokhAEAKJIQBgCgSP8PM4XVxfJT9poAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x105eae490>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ggplot(mtcars, aes(x='factor(cyl)', fill='factor(gear)')) + geom_bar() + scale_fill_yhat()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<ggplot: (284886673)>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nIrGdZM2mq0LtN1HySbTnlEQ2HUmUbND7dVqSL7vsMt13331tlvfv319Llixp9zGXPpfbNGzYMC1b\ntqwbwwQAAEAiOnr0qL773e9q/fr1wWWlpaX66U9/qhEjRoS9nauvvlrvv/9+NIbYLVzdDqBd6bsf\nlLUh/DvQNKc4VZf/VBRHBAAIx127PonYttYWjw5rvZ7ewCFS24gkSjKAdnWlIHdnfQBAcnnrrbe0\ncuVKjRo1SidPnpQk+f1+/eM//qM+/fRTORwOrV27VhkZGfrqV7+qxsZG9evXT6+++mrwtsKJJKwP\nEwEAAABCCQQCeuSRR/T222/r17/+taqrqyVJ//mf/6nrr79e27dv16JFi/T888/LYrHo9ddf144d\nOzR//ny98sorwW0kEmaSAQAA0GNNTU0aMGCApIsfQS1Jf/nLX/TBBx9o9erVamhoUFFRkWpra3Xv\nvffq+PHjqqmp0e233x7PYYdESQYAAECP2Ww2ffHFF0pPT9ef//xnSdL48eN1zTXX6M4775R08e4j\nW7Zs0ZgxY7R27Vo9++yzbT5MLlFQkgEAAJJIuG+2iySLxaLHH39c119/vUaPHq2RI0dKku6++27d\nc889+uUvfymLxaJ//ud/VkFBgX784x+roqJCl112WfAOGLxxDwAAAElj5MiRWrdunaSLn6Bseuml\nl9os++CDD9ose++99yI/uB7gjXsAAACAgZIMAAAAGCjJAAAAgIGSDAAAABgoyQAAAICBkgwAAAAY\nKMkAAADotqNHjyo7O1uzZ89WQUFBu7eB66rKyko9//zzERhd93GfZAAAgCRybuOCiG1rwG2vhbXe\nddddp3Xr1um9997TQw89pDfffFOSFAgEuvUhIVOmTNGUKVO6/LhIoiQDAAAgIqZOnaqysjIVFxdr\n2LBhmjp1qr72ta/p/vvvV319vaZNm6af/vSneumll7RlyxY1NDTo888/1/3336/Vq1crEAjozTff\nVHl5uf7nf/5HP/nJT3T11Vfr/fffl6Tg1z/4wQ906NAhnTlzRpJ0yy236JVXXtHll1+uX//61xE5\nFi63AAAAQI8EAgFJ0s6dOzV//nxVV1dr7dq1evDBB/X9739fP//5z/X222+rrq5OH374oSRp8ODB\n2rJli2bNmqU9e/bod7/7naZMmaKysjJJ//cx1S1nolt+PWHCBG3btk0ul0sNDQ3asWOH/H6/jhw5\nEpFjYiYZAAAAPbJr1y7Nnj1bDodD//7v/66VK1fKZrNJkqqqqrR06VIFAgH5fD7NmzdPknTVVVdJ\nkoYNGyaHwxH8uqamRgMHDgxu+1IBN79u+fhLX7vdbtXU1GjUqFE9PiZKMgAAAHrk0jXJ0sU38rWc\n8R03bpyeeeYZXXHFFZKkpqYmrV27NuQMccsiLEl2u121tbVqbm7W4cOH231MR4/vLkoyAABAEgn3\nzXbR1LK0Pvnkk7r33nt14cIF2e12/fKXvwzrcZcsW7ZMRUVFmj59uoYPH97hY7rzJsFQKMkAAADo\ntpEjRwZnkdv7fvTo0dq2bVurxyxZsiT49fLly4Nff+c73wl+XVxcLElavHixFi9e3Orxjz32WPDr\np59+Ovj1z372s+4eRhu8cQ8AAAAwUJIBAAAAAyUZAAAAMFCSAQAAAAMlGQAAADBwdwugD3n8r375\nmsJbd1V0hwIgyXXl9UaSHDbp0TGp0RsQ0EWUZKAP6cpfWECi8T38oOT1hv+AzEw5fvRU9AaEDnX1\n9YbXp97pK1/5ijZs2KDs7GxJ0po1a3Ts2DE9/PDDPd72Rx99pO985zu6cOGCmpubdccdd+i+++7r\n1ra2bt2qDz74oNWt4zpDSQYA9A5dKcjdWR9IEh/ffmvEtjV2w+YOf3777bfr1Vdf1f333y9J2rBh\ng5555plOtxsIBDr84I+GhgYtWrRIGzZs0JVXXilJ+sMf/tCFkbfV1Q8a4ZpkAAAAdMvChQu1ceNG\nSZLX69XJkyeVm5urM2fO6O/+7u80Z84cLV68WIFAQLt27dItt9yihQsX6ic/+Yluuumm4HbmzJkj\nn88X/P7dd9/VtGnTggVZkq699lpJ0r59+1RUVKSioiI9+eSTkqQTJ05o7ty5uu6667RixQpJksfj\n0fz583XjjTdq7dq1XT42SjIAAAC6xe12q76+XmfOnNHrr7+uW265RdLFj6L+5je/qe3bt2vy5MnB\nIu3xePTqq69q5cqVSk1N1WeffaZPPvlEl112mRwOR3C71dXVGjp0qKSLl13MmjVLBQUFkqSHHnpI\nL774osrKyrRz504dPXpUTz75pFauXKmdO3eqrq5OZWVl+sUvfqGFCxdq27ZtGjVqVJePjZIMAACA\nbrvtttu0ceNGbdiwQaWlpZKkv/zlL3rsscc0e/Zsbdq0SZ999pkk6Utf+lLwcXfddZd+9atf6eWX\nX9add97ZapvDhg3T8ePHJUnjx4/Xjh071NzcLEk6efKkxo4dK0maNm2aDh8+rMOHDwe3/aUvfUkH\nDx7U4cPc0gFIAAAcY0lEQVSHlZ+fL0m6+uqru3xclGQAAAB028KFC/XSSy+puro6WF7Hjx+vH//4\nx3r77bf1pz/9Sffee68kyWr9v+p50003aevWrdq+fbvmzZvXapszZ85UZWWlqqqqJF28hrmp6eK7\nOy+//HIdOHBAgUBAH374oXJycpSTk6N3331XkvT+++9r7NixysnJ0YcffihJ+uCDD7p8XLxxDwAA\nIIl09ma7SBs+fLgCgYBuvvnm4LKHHnpId999tx599FFZLBY9/fTTbR6XkpKicePGyWaztSrPl372\nm9/8Rt/61rfk9/tls9m0ePFiSdIPf/hDLV26VJJUUlKiESNGaOXKlVqyZImeeOIJTZo0SYWFhZo8\nebK+9rWvaf369Ro6dKhGjx7dpeNK6JKcmpraJrRosVgsOn/+vFJSUmS3J0YsVqtV6enp8R5GL8zG\nH9V9t9xvR9n4zAd2Ybs90RuyiZdIZtOT31eyZ9NV5n5D5dPV51R72+6ORHktlhLv3In0eZNsz6u+\nxLzzxMCBA/Xqq6+2Wa+4uLjV91arVUuWLGl3m+PGjdMbb7zRZvlVV12l8vLyVsuGDx+ut956q9Wy\nAQMG6M033wxr/O1J6LPI74/uC3NLKSkpysrKUm1trRoaGmK2346kp6errq4u3sMgG0PL/UYym0gd\nTzJmEymRzKYn20n2bLrK3G+iPa8S5bVYSrxzJ9LZ9Lbnlcvlisl+ktXy5cvl8Xg0ffr0eA+lXQld\nkgEAAJCcVq1K7M925Y17AAAAgIGSDAAAABgoyQAAAICBkgwAAAAYKMkAAACAgZIMAAAAGCjJAAAA\ngIGSDAAAABgoyQAAAICBkgwAAAAYKMkAAACAgZIMAAAAGCjJAAAAgIGSDAAAABgoyQAAAICBkgwA\nAAAYKMkAAACAgZIMAAAAGCjJAAAAgIGSDAAAABgoyQAAAICBkgwAAAAYKMkAAACAgZIMAAAAGCjJ\nAAAAgIGSDAAAABjs8R4AgL7H9/CDktcb3sqZmXL86KnoDggAAAMzyQBiL9yC3NV1AQCIEEoyAAAA\nYOj0cotz585p06ZNqq2tlcVi0fTp01VQUKC6ujqtX79e586dU1ZWlkpLS5WWliZJKisrU0VFhaxW\n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\nrkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1103f2890>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ggplot(diamonds, aes(x='clarity', fill='cut')) + geom_bar() + scale_fill_yhat()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<ggplot: (285929557)>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nAACY5BkAAKYAj0jchgMRPsoAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1178bc2d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ggplot(diamonds, aes(x='pd.cut(price, nbins=10)', fill='cut')) + geom_bar() + scale_fill_yhat()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
